package com.example.app1;

import android.app.DatePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import java.util.Calendar;

public class DateTimeActivity extends AppCompatActivity implements View.OnClickListener, DatePickerDialog.OnDateSetListener {

    private TextView tv_date;
    private DatePicker datePicker;
    private Button btn_showDialog;
    private Button btn_comfirm;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_datetime);
        tv_date = findViewById(R.id.tv_date);
        datePicker = findViewById(R.id.dp);
        btn_showDialog = findViewById(R.id.btn_datedialog);
        btn_comfirm = findViewById(R.id.btn_confirm);
        btn_showDialog.setOnClickListener(this);
        btn_comfirm.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if(v.getId()==R.id.btn_confirm)
        {
            String str=String.format("您选择的日期是%d年%d月%d日",datePicker.getYear(),datePicker.getMonth()+1,datePicker.getDayOfMonth());
            tv_date.setText(str);
        } else if (v.getId()==R.id.btn_datedialog) {
            //获取日历的一个实例，里面包括了当前的时分秒
            Calendar calendar = Calendar.getInstance();
            //构建一个时间对话框，该对话框已经集成了时间选择器
            //第二个构造参数为对话框上面确定按钮的监听器,第三、四个参数为时间的默认值，这里指定当前时间，无法选择秒，
            // 最后一个参数为true表示24小时制，为false表示12小时制
            DatePickerDialog dialog=new DatePickerDialog(this,this,calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH));
            dialog.show();
        }
    }

    @Override
    // 一旦点击日期对话框上的确定按钮，就会触发监听器的onDateSet方法
    public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
        // 获取日期对话框设定的年月份
        String desc = String.format("您选择的日期是%d年%d月%d日", year, month + 1, dayOfMonth);
        tv_date.setText(desc);
    }
}
